package com.jack.lib.base.header

import com.jack.lib.base.header.style.GoogleStyle
import com.jack.lib.base.header.style.LightNormalStyle
import com.jack.lib.base.header.style.TransparentStyle

/**
 * author : chong.huang
 * create : 2022/1/13
 * desc   : UI头部管理类
 */
object JHeaderManager {

    var defaultTheme = HeaderStyleTheme.LIGHT_NORMAL
        private set
    var defaultStyle = hashMapOf(
        HeaderStyleTheme.LIGHT_NORMAL to { LightNormalStyle() },
        HeaderStyleTheme.TRANSPARENT to { TransparentStyle() },
        HeaderStyleTheme.GOOGLE to { GoogleStyle() }
    )
        private set

    /**
     * author  : chong.huang
     * time    : 2022/1/13 14:51
     * desc    : 设置默认的头部主题
     * @param defaultTheme 默认主题
     */
    fun defaultTheme(defaultTheme: HeaderStyleTheme) {
        this.defaultTheme = defaultTheme
    }

    /**
     * author  : chong.huang
     * time    : 2022/1/13 14:52
     * desc    : 配置全局样式
     * @param theme 要设置样式的主题
     * @param defaultStyle 样式
     */
    fun configStyle(theme: HeaderStyleTheme, defaultStyle: () -> IHeaderStyle) {
        this.defaultStyle[theme] = defaultStyle
    }
}